home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr46 / rss30.zip / RSS.DOC < prev    next >
Text File  |  1993-04-22  |  25KB  |  541 lines

  1.  
  2.  ╔══════════════════════════════════════════════════════════════════════════╗
  3.  ║                                                                          ║
  4.  ║                                 ISoft D&M                                ║
  5.  ║                                 POB. 5517                                ║
  6.  ║                           Coralville IA 52241                            ║
  7.  ║                                   U.S.A                                  ║
  8.  ║                                                                          ║
  9.  ╚══════════════════════════════════════════════════════════════════════════╝ 
  10.  
  11. *******************************************************************************
  12. *                                RSS.DOC-V3.0                                 *
  13. * LAST UPDATE - Apr. 22, 1993. (c) 1991, 93 Ron Loewy.                        *
  14. *******************************************************************************
  15.  
  16.  
  17.  
  18.  
  19.         ░░░░░░░░░░░░░          ░░░░░░░░░░░         ░░░░░░░░░░░
  20.         ░▒▒▒▒▒▒▒▒▒▒▒▒░        ░░▒▒▒▒▒▒▒▒▒▒▒       ░░▒▒▒▒▒▒▒▒▒▒▒
  21.         ░▒▓▓▓▓▓▓▓▓▓▓▓░▒      ░░▒▒▓▓▓▓▓▓▓▓▓▓▓     ░░▒▒▓▓▓▓▓▓▓▓▓▓▓
  22.         ░▒▓██████████░▒▓    ░░▒▒▓▓███████████   ░░▒▒▓▓███████████
  23.         ░▒▓█  on's   ░▒▓█    ░░▓▓██ mart         ░░▓▓██ earc
  24.         ░░░░░░░░░░░░░ ▒▓█     ░░░░░░░░░░          ░░░░░░░░░░h
  25.         ░▒▒▒▒▒▒▒░░▒▒▒▒ ▓█      ▒▒▒▒▒▒▒▒░░          ▒▒▒▒▒▒▒▒░░
  26.         ░▒▓▓▓▓▓▓▓░░▓▓▓▓ █       ▓▓▓▓▓▓▓▓░░          ▓▓▓▓▓▓▓▓░░
  27.         ░▒▓███████░░████         ██████░░▒▒          ██████░░▒▒
  28.         ░▒▓█       ░░                 ░░▒▒▓▓              ░░▒▒▓▓
  29.         ░▒▓█        ░░      ░░░░░░░░░░░▒▒▓▓██   ░░░░░░░░░░░▒▒▓▓██
  30.          ▒▓█         ▒▒      ▒▒▒▒▒▒▒▒▒▒▒▓▓██     ▒▒▒▒▒▒▒▒▒▒▒▓▓██
  31.           ▓█          ▓▓      ▓▓▓▓▓▓▓▓▓▓▓██       ▓▓▓▓▓▓▓▓▓▓▓██
  32.            █           ██      ███████████         ███████████
  33.  
  34. *******************************************************************************
  35. *                                  File List                                  *
  36. *******************************************************************************
  37.  
  38.  This package contains the following files :
  39.  
  40.  RSS.EXE        - RSS program executable.
  41.  RSS.DOC        - This file.
  42.  RSS.REG        - Registration file.
  43.  DEMORSS.BDF    - Demo Build File for Ralf Brown's Interruprt List.
  44.  PROGRAMS.TXT   - ISoft D&M shareware products description.
  45.  
  46. *******************************************************************************
  47. *                                Why Register                                 *
  48. *******************************************************************************
  49.  
  50.   RSS is a shareware product, if you find this product valuable, 
  51.  please register it. This section describes the reasones you should register.
  52.  
  53.   By registering you will receive a diskette with the latest RSS version, 
  54.  and the DPMI (Protected Mode) version of RSS. The DPMI version of RSS
  55.  can open dictionaries that have up to 16 segments (VS. 8 only for the
  56.  shareware version - that has memory limitations, All this and - you will 
  57.  help us create the next version of RSS - that will include even more 
  58.  features then the features that are currently available!, we might even 
  59.  add YOUR enhancment requests!
  60.  
  61. *******************************************************************************
  62. *                                  Whats New                                  *
  63. *******************************************************************************
  64.  
  65.   V3.0 - New multiple size dictionaries - The BIG/SMALL models were replaced
  66.          by 1 to 8 (or 16 in the registered dpmi version) dictionaries
  67.          that work on more uniform entry distribution.
  68.  
  69.        - RSS Will NOT read/manipulate V2.x configuration files, RSS
  70.          dictionaries will have to be re-built.
  71.  
  72.        - Because of the above changes, RSS build file DICTIONARY command
  73.          was changed to be : DICTIONARY x, where x is the number of 
  74.          dictionary segments that will be used.
  75.  
  76.        - Added a demo RSS build file and query tool to query Ralf brown's
  77.          interrupt list. Please refer to the TUTORIAL section of this file.
  78.  
  79.        - RSS will be able to process more than 8 files during the build
  80.          process from this version. 
  81.  
  82.   V2.2 - Added the ? help command. From this version RSS is distributed by
  83.          ISOFT D&M, P.O.B 5517, Coralville IA 52241, U.S.A
  84.  
  85.   V2.1 - Video configuration is restored better when RSS terminates.
  86.  
  87.   V2.0 - Added the FIND command that displays the text source of the
  88.          found key, the SEARCH command "finds" the same keys, but
  89.          only displays the key and file name, the find command displays
  90.          the actual text.
  91.  
  92.          PLEASE NOTICE - Dictionaries built in previous releases of RSS
  93.          are NOT COMPATIBLE with RSS V2.0 and above! . Be sure to RE-BUILD
  94.          all of your dictionaries before you start using them with RSS V2.0.
  95.  
  96.          I'm sorry for the inconvenience this restriction might cause, but 
  97.          the new FIND feature is so important that the dictionary structure
  98.          change is worthy.
  99.  
  100.   V1.2 - Command re-direction from the DOS prompt is now available.
  101.        - Build file definition prefix on command line changed to
  102.          '$' from '^', The '^' character is used by 4DOS as a command
  103.          delimiter.
  104.  
  105.   V1.1 - RSS has a new information screen when building the indexes, the old
  106.          version supplied all the keys with no sum information. Now RSS shows 
  107.          the sum information of the keys found in each file. 
  108.  
  109. *******************************************************************************
  110. *                                Introduction                                 *
  111. *******************************************************************************
  112.  
  113.  RSS is an extention of my own TXS text search program, RSS uses the same
  114. technology and search logic to perform FAST LOGIC searches on static text
  115. databases. The difference is that RSS has a more complicated database
  116. build facilities with enhanced creation parameters, and the ability to
  117. hold huge databases. RSS is a command line program where TXS is a full
  118. CUA environment. As RSS is a superset of TXS, I might integrate the two
  119. products by enhancing future versions of TXS and RSS to work in dual mode -
  120. "simple" mode - current TXS database definition, and "enhanced" mode -
  121. current RSS database definition. As a user of this product I would like
  122. to hear from you about these matters.
  123.  
  124.  The need for RSS was created when I found out I spend a lot of time searching
  125. a problem index of a company I give technical support and consulting to, the
  126. index arrives once a month, and is about 3 MB large. In the index we have
  127. about 500 - 2000 different problem descriptions with search keywords. The
  128. problems are seperated by a dashed line, and are uniqely identified by a
  129. problem key number that appears on the first line after the dashed seperator
  130. line, with the prefix PROB#=. I found myself hoping for the ability to perform
  131. smart searchs with logic operators, the way I do on our telefax database with
  132. my own TXS and XCD programs.
  133.  
  134.  Over the years I found out that I use RSS whenever I want to search Ralf
  135. Brown's excelent interrupt list, and the instructions on doing just that
  136. are given in then Tutorial section of this document.
  137.  
  138.  RSS was built to be generic enough to answer the problem I encountered, and
  139. provide a similiar solution to as many cases as possible. RSS allows the user
  140. to define a multi-key, multi-file database, with variable length "entries"
  141. (or records), build an economic existential dictionary on it, and use it as
  142. an index for fast logic searches. RSS allows the definition of common words
  143. that are belived to exist in all of the entries, and are thought to be left
  144. out of the dictionary, by defining "exclude" dictionary. RSS supports 16
  145. dictionary "models", the smallest model supports dictionaries of up to
  146. 30,000 words, and the biggest model supports up to 500,000 words.
  147.  
  148.  If you need a version of RSS that will be able to use more than 500,000
  149. words, please contact the author or the distributer.
  150.  
  151.  Version 2.0 of RSS added the ability to FIND the search criteria in the
  152. source text database. RSS does not read the entire text database to display
  153. the relevant text, but saves a pointer and length indicators in the dictionary
  154. created during the build. RSS searchs are as fast as ever, and only the text
  155. that meets the search criteria is extracted from the text database and 
  156. displayed.
  157.  
  158. *******************************************************************************
  159. *                                  Tutorial                                   *
  160. *******************************************************************************
  161.  
  162. In order to help you learn the power and features of the RSS package we have
  163. included a set of files that builds and queries Ralf Browns Interrupt List.
  164.  
  165. The Interrupt List is a huge collection of PC interrupts that is available
  166. free on the internet, and probably elsewhere. In order to follow this tutorial
  167. it is advised that you will get a hold of this package.
  168.  
  169. The first step in using the RSS package is to create the dictionary on the
  170. text database. In this example we will create a dictionary (index) called
  171. intlist that will be used later to query the interrupt list.
  172.  
  173. The file DEMORSS.BDF is a RSS Build File that will allow RSS to scan the 
  174. interrupt list and build the dictionary.
  175.  
  176. The contents of this file are :
  177.  
  178. seperator ------
  179. keyline 1
  180. keypos 1
  181. keylen 78
  182. delimiter ' '
  183. delimiter ','
  184. delimiter '='
  185. delimiter '"'
  186. exclude int
  187. exclude seealso:
  188. exclude notes:
  189. exclude -
  190. exclude =
  191. exclude return:
  192. dictionary 8
  193.  
  194. When we will build the RSS dictionary - RSS will know that a new topic/entry
  195. is found when a line that starts with the string ------ is found. (This is the
  196. seperator command of the file). 
  197. The KEY to the topic is found on the first line after the seperator (keyline)
  198. in column 1 (keypos 1) and has a length of 78 characters (keylen). Take a 
  199. look at the interrupt list to see the structure of the topics and verify that
  200. this information is relevant.
  201. The word delimiters are a space (delimiter ' '), and the following characters :
  202. ,=" .
  203. The following words are assumed to exist in all topics : int, seealso:, notes:,
  204. return: and = .
  205. The last line of the build file specifies a dictionary of 8 segments.
  206.  
  207. To CREATE the dictionary use the following command :
  208.  
  209. RSS b @intlist $demorss interrup.?
  210.  
  211. This command instructs RSS to create a dictionary called intlist, using
  212. the build file definitions found in the file DEMORSS.BDF, on all the
  213. files that are called INTERRUP.? . (I do not combine the interrupt list, if
  214. you do, replace interrup.? with interrup.lst or what ever you call it).
  215.  
  216. This operation will take some time, because the interrup list is a BIG 
  217. database.
  218.  
  219. If the build process is terminated because of memory constraints, try 
  220. removing some TSR's from memory. If nothing helps, you will have to
  221. edit the DEMORSS.BDF file and change the dictionary line to specify a
  222. smaller number of dictionary segments. (Each segment is about 64K, so
  223. having 8 segments mean we need 512K just for the dictionary segments).
  224.  
  225. After the build process is finished RSS has created several new files
  226. on the hard disk. These files are called INTLIST.*, where * has the
  227. following meaning :
  228.  
  229. CFG - This is the configuration file. It specifies the key names, and 
  230. dictionary structure.
  231. EXC - This is the exclude words dictionary segment.
  232. DC? - Where ? is A, B .. are the dictionary data segments.
  233.  
  234. When ever we want to query the dictionary from now on we will use the 
  235. the following command :
  236.  
  237. RSS f @intlist our-query-here
  238.  
  239. If for example we would like to find all entries that has something to
  240. do with lantastic network we will use a simple query such as :
  241.  
  242. RSS f @intlist lantastic
  243.  
  244. If we would like to find all refereneces to netbios, that do not include
  245. references to netware we will use :
  246.  
  247. RSS f @intlist netbios and (not netware)
  248.  
  249. etc..
  250.  
  251. Notes : 
  252.  
  253.         1 - The Interrupt List is a BIG database with a lot of entries, the
  254.             8 dictionary segments are probably the minimal configuration
  255.             that will not cause too many collisions. If you have registered
  256.             RSS - it is advised that you use RSSX - The protected mode
  257.             version, and use a higher value (such as dictionary 16) to
  258.             achieve optimal query accuracy.
  259.  
  260. Example - I wanted to look at the real-time compression features added to
  261.           dos 6, so I performed the following search on version 3.4 of the
  262.           interrupt list :
  263.  
  264.           rss f @intlist compress
  265.  
  266.           and received the following answer :
  267.  
  268. RSS V3.0, ISoft D&M, P.O.B 5517, CORALVILLE IA 52241, U.S.A
  269. Development Modification Level : 002c, Date : Apr., 22, 1993.
  270.  
  271. Query : compress 
  272.  
  273. Searching intlist
  274. File : INTERRUP.B, Key : INT 1A - MICROSOFT REAL-TIME COMPRESSION INTERFACE (MRCI) - ROM-BASED SERVER
  275. INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER
  276.     AX = B001h
  277.     CX = 4D52h ("MR")
  278.     DX = 4349h ("CI")
  279. Return: CX = 4943h ("IC") if installed
  280.     DX = 524Dh ("RM") if installed
  281.         ES:DI -> MRCINFO structure (see below)
  282. Note:    this call is functionally identical to INT 2F/AX=4A12h, which should
  283.       be called first, as this call is used for the first, ROM-based
  284.       MRCI server, while the other call is used for RAM-based servers
  285.       which may be partially or entirely replacing a prior server
  286. SeeAlso: INT 2F/AX=4A12h
  287.  
  288. Format of MRCINFO structure:
  289. Offset    Size    Description
  290.  00h  4 BYTEs    vendor signature
  291.          "MSFT" Microsoft
  292.  04h    WORD    server version (high=major)
  293.  06h    WORD    MRCI specification version
  294.  08h    DWORD    address of server entry point
  295.  0Ch    WORD    bit flags: server capabilities (see below)
  296.  0Eh    WORD    bit flags: hardware assisted capabilities (see below)
  297.  10h    WORD    maximum block size supported by server (at least 8192 bytes)
  298.  
  299. Bitfields for capabilities:
  300.  bit 0    standard compress
  301.  bit 1    standard decompress
  302.  bit 2    update compress
  303.  bit 3    MaxCompress
  304.  bit 4    reserved
  305.  bit 5    incremental decompress
  306.  bits 6-14 reserved
  307.  bit 15    this structure is in ROM and can't be modified
  308.      (server capabilities only)
  309.  
  310. Call MRCI entry point with:
  311.     DS:SI -> MRCREQUEST structure (see below)
  312.     CX = type of client (0000h application, 0001h file system)
  313.     AX = operation
  314.         0001h perform standard compression
  315.         0002h perform standard decompression
  316.         0004h perform update compression
  317.         0008h perform MaxCompress
  318.         0020h perform incremental decompression
  319.     AX = FFFFh clear flags
  320.         BX = bitmask of flags to clear (set bits in BX are flags to clear)
  321. Return: AX = status
  322.         0000h successful
  323.         0001h invalid function
  324.         0002h server busy, try again
  325.         0003h destination buffer too small
  326.         0004h incompressible data
  327.         0005h bad compressed data format
  328. Note:    MRCI driver may chain to a previous driver
  329.  
  330. Format of MRCREQUEST structure:
  331. Offset    Size    Description
  332.  00h    DWORD    pointer to source buffer
  333.  04h    WORD    size of source buffer (0000h = 64K)
  334.  06h    WORD    (UpdateCompress only)
  335.          (call) offset in source buffer of beginning of changed data
  336.         (return) offset in destination buffer of beginning of changed
  337.             compressed data
  338.  08h    DWORD    pointer to destination buffer
  339.          must contain original compressed data for UpdateCompress
  340.  0Ch    WORD    size of destination buffer (0000h = 64K)
  341.          any compression: size of buffer for compressed data
  342.          standard decompression: number of bytes to be decompressed
  343.         incremental decompression: number of byte to decompress now
  344.         (return) actual size of resulting data
  345.  0Eh    WORD    client compressed data storage allocation size
  346.  10h    DWORD    incremental decompression state data
  347.          set to 00000000h before first incremental decompression call
  348. Notes:    the source and destination buffers may not overlap
  349.     the source and destination buffer sizes should normally be the same
  350.     application should not update the contents of the MRCREQUEST structure
  351.       between incremental decompression calls
  352. --------c-1AC0-------------------------------
  353. Found 1 entry matches
  354.  
  355. *******************************************************************************
  356. *                                 Terminology                                 *
  357. *******************************************************************************
  358.  
  359.  In order to understand RSS operation and customization we will define the
  360. following terms :
  361.  
  362. SEPERATOR - a string prefix that is used to define the end of an entry, and the
  363.             begining of a new one.
  364.  
  365. KEYLINE   - an integer that is used to define the number of lines below the
  366.             SEPERATOR line in the entry, the entry's key resides on.
  367.  
  368. KEYPOS    - the position from the start of the line the key starts.
  369.  
  370. KEYLEN    - the number of characters used to define the key.
  371.  
  372. DELIMITER - a character used to seperate between two words in a text database.
  373.  
  374. EXCLUDE   - a word that appears on all of the entries in the database, and
  375.             we want to exclude from actual database.
  376.  
  377. *******************************************************************************
  378. *                            Dictionary-Definition                            *
  379. *******************************************************************************
  380.  
  381.  In order to define the dictionary to RSS, the user must create a dictionary-
  382. build-file-definition. This file has the following structure :
  383.  
  384.   seperator string      start looking at the line start                        
  385.   keyLine integer       no. of lines below the seperator line where key is ..  
  386.   keyPos integer        key starts at pos on keyLine                           
  387.   keyLen integer        keyLength                                              
  388.   delimiter char        character used as delimiter in the area ...            
  389.   exclude word          words to exclude                                       
  390.   dictionary parm       parm = number of dictionary segments to use.
  391.                   
  392.  Example :                                                                   
  393.  
  394.   seperator ======= seperator is a 7 = string at the begining of the line,   
  395.                     rest of line is ignored.                                 
  396.   keyline 1         key is in first line below the seperator                 
  397.   keypos 12         key starts in column 12                                  
  398.   keylen 5          and is 5 characters long                                 
  399.   delimiter ' '     space is a delimiter                                     
  400.   delimiter ','     , is a delimiter                                         
  401.   delimiter '='     = is a delimiter                                         
  402.   exclude he        he will not be entered to dictionary                     
  403.   exclude prod      prod -"- ...                                             
  404.   dictionary 6      dictionary will use the 6 dict segments.
  405.  
  406. *******************************************************************************
  407. *                                  Operation                                  *
  408. *******************************************************************************
  409.  
  410.  At the dos command line type RSS to get the following help screen :
  411.  
  412.   RSS V3.0, ISoft D&M, P.O.B 5517, CORALVILLE IA 52241, U.S.A
  413.                                
  414.   Usage ..
  415.         RSS cmd cmd-parm
  416.   Where cmd Are ..
  417.         b  - build database from files given in cmd-parm
  418.         s  - search database for expression given in cmd-parm
  419.         f  - find in database entries for cmd-parm expression
  420.         ?  - display help screen
  421.   Build format ..
  422.         RSS b [@dictionary-file] [$definition-file] files [files]
  423.   Search command ..
  424.         RSS s [@dictionary-file] logic-search-expr
  425.   Find command ..
  426.         RSS f [@dictionary-file] logic-search-expr
  427.   Notice ..
  428.         dictionary-file - with no suffix, will use .DCT and .CFG
  429.         definition-file - used to build dictionary.
  430.  
  431.   IMPORTANT : DO NOT SPECIFY .BDF SUFFIX TO DEFINITION FILE!
  432.   
  433. *** Remarks :
  434.  
  435.  When you enter file names to build in the build command, dos wild-cards are
  436.  allowed.
  437.  
  438.  If you omit the dictionary-file, RSS will try to get the dictionary name
  439.  from the environment variable RSSDICT, if this name does not exist, RSS will 
  440.  use the name 'RSSDICT' to build the dictionary configuration and index files.
  441.  
  442.  If you omit the definition-file, RSS will try to get the definition name
  443.  from the environment variable RSSBLDF, if this name does not exist, RSS will 
  444.  use the name 'RSSBLDF' to read the build configuration parameters.
  445.  
  446.  PLEASE NOTICE - dictionary and definition file parameters given MUST NOT
  447.  include any file name extention. 
  448.  (e.g.  RIGHT      -> rss b @dict1 $def *.*
  449.         WRONG      -> rss b @dict1 $def.bdf *.*                     )
  450.  
  451.  The logic search expressions understood by RSS have the following format  :
  452.  
  453.   [NOT] search-word-1 [AND | OR | XOR [NOT] search-word-2 [AND | ...]]
  454.  
  455.   Some examples will clarify the definition :
  456.  
  457.  RON and not landmark                   - will print all of the files that 
  458.                                           contain the word RON, but do not
  459.                                           contain the word LANDMARK.
  460.  JOG or DIE                             - will print all the files that 
  461.                                           contain the word JOG, or the
  462.                                           word DIE, or both of them.
  463.  JOG xor DIE                            - All of the files that contain
  464.                                           either one of the words DIE or JOG,
  465.                                           but not both of them.
  466.  
  467.   Some points to consider :
  468.  
  469.   RSS does not make a difference between upper and lower case letters. - 
  470.  lanDmark, LANDMARK, landMArK and landmark are all the same.
  471.  
  472.   RSS definition for a word - any set of characters seperated by delimiters.
  473.  
  474.   Operator precedence   : NOT, AND, XOR, OR.
  475.  
  476. *******************************************************************************
  477. *                                  Warranty                                   *
  478. *******************************************************************************
  479.  
  480.   There is no warranty what so ever, The program is supplied as is,
  481.  The distributer (ISoft D&M), or the author (Loewy Ron), are not,
  482.  and will not be responsible for any damages, lost profits, 
  483.  or inconveniences caused by the use, or inability to use this program. 
  484.  The use of the program is at your own risk. 
  485.  By using (or attempting to use) the program you agree to this.
  486.  
  487. *******************************************************************************
  488. *                                Distribution                                 *
  489. *******************************************************************************
  490.  
  491.   RSS is distributed by ISoft D&M, P.O.B. 5517 CORALVILLE IA 52241, U.S.A.
  492.   
  493.   RSS is (c) copyrighted by Loewy Ron, 1991, 93.
  494.  
  495.   RSS is a shareware program, please register your copy. 
  496.   To register your copy of RPTP please refer to the supplied
  497.   RSS.REG file. 
  498.   
  499.   Other programs distributed by ISoft D&M are described in the supplied  
  500.   PROGRAMS.TXT file.
  501.   
  502. *******************************************************************************
  503. *                                   Contact                                   *
  504. *******************************************************************************
  505.  
  506.   Please contact :
  507.  
  508.   ISoft D&M,  
  509.   P.O.B 5517
  510.   Coralville IA 52241,
  511.   U.S.A
  512.  
  513.   To contact the author directly : 
  514.  
  515.   Contact :     Loewy Ron,
  516.                 9 Haneveem st.
  517.                 Herzeliya, 46465
  518.                 ISRAEL.
  519.  
  520.   e-mail address : CompuServe - 100274,162
  521.  
  522. *******************************************************************************
  523. *                                   Credits                                   *
  524. *******************************************************************************
  525.  
  526.   RSS was written using Turbo Pascal 6.0, and Borland Pascal 7.0.
  527.   (Trademarks of Borland International).
  528.  
  529.   4DOS is a copyright of J.P. software.
  530.  
  531.   E.T. Floyd wrote the DDJ published DICT unit, I used the ideas in this unit
  532.   to create RSS, and was helped by the published source code, but My dictionary
  533.   uses different hash algorithm. ( I saw that in DDJ Jan. 1991 MR. Floyd 
  534.   answered a letter regarding the hash algorithm. ), I removed some of the
  535.   code I did not need from the DICT unit, and added the ability to remove
  536.   keys from the dictionary.
  537.  
  538.   The interrupt list compilation is a Copyright 1989, 93 of Ralf Brown.
  539.  
  540.   MS DOS is a trademark of Microsoft Corporation.
  541.